// T show<T>(T a, T b) {
//   return a ;
// }

// class Stotage<T> {
//   T val;
//   Stotage(this.val);

//   T get value {
//     return val;
//   }

//   set value(T newVal) {
//     val = newVal;
//   }
// }

abstract class Storage<T> {
  T get();
  void set(T newValue);
}

class Stotage<T> extends Storage<T> {
  T val;
  Stotage(this.val);
  @override
  T get() {
    return val;
  }

  @override
  set(T value) {
    this.val = value;
  }
}

main() {
  // show<int>(1, 2);
  var stotage = Stotage<int>(1);
  print(stotage.val);
}
